/*
 * Licensed under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 * 
 *      http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package org.submarine.common;

import com.alibaba.fastjson.JSON;

/**
 * @file org.submarine.transport.codec.TransferSerializable.java
 * 
 *       TODO
 * 
 * @author gaojian
 * @created 2013-10-23 下午5:47:34
 * @version 0.0.1
 * @since 0.0.1
 * 
 */
public class TransferSerializable {

	public static String obj2Json(final Object obj, boolean prettyFormat) {
		return JSON.toJSONString(obj, prettyFormat);
	}

	public static <T> T json2Obj(String json, Class<T> clazz) {
		return JSON.parseObject(json, clazz);
	}

	public static void main(String[] args) {
		String s = obj2Json(new Person(34, "Zhangsan", "257923241996112656"), false);
		System.out.println(s);
	}
	
}
class Person {
	int age;
	String name;
	String id;
	Person(int age, String name, String id) {
		this.age = age;
		this.name = name;
		this.id = id;
	}
	/**
	 * @return the age
	 */
	public int getAge() {
		return age;
	}
	/**
	 * @param age the age to set
	 */
	public void setAge(int age) {
		this.age = age;
	}
	/**
	 * @return the name
	 */
	public String getName() {
		return name;
	}
	/**
	 * @param name the name to set
	 */
	public void setName(String name) {
		this.name = name;
	}
	/**
	 * @return the id
	 */
	public String getId() {
		return id;
	}
	/**
	 * @param id the id to set
	 */
	public void setId(String id) {
		this.id = id;
	}
	
}
